package com.obelisco.modelo.data;

import java.io.Serializable;
import java.util.ResourceBundle;

import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.NotNull;

import com.jgoodies.binding.beans.Model;

public abstract class DataGenerica<T extends DataGenerica<T>> extends Model implements Serializable {
	
	public final static String DATA_ACTIVO = "A"; 
	public final static String DATA_INACTIVO = "I";
	public final static String ESTADO = "estado";
	
	protected String estado = "A";
	protected ClassValidator<T> validador = null;
	private String auxBinding;	

	@Override
	public abstract String toString();
	
	public abstract boolean equals(T objeto);
	
	public DataGenerica(Class<T> clase) {
		this.validador = new ClassValidator<T>(clase, ResourceBundle.getBundle("com.obelisco.modelo.data.hibernate-validator"));
		this.auxBinding = null;
	}
	
	public DataGenerica(Class<T> clase, String auxBinding) {
		this.validador = new ClassValidator<T>(clase, ResourceBundle.getBundle("com.obelisco.modelo.data.hibernate-validator"));
		this.auxBinding = auxBinding;
	}

    @NotNull(message="{error.notnull}")
	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	public String getAuxBinding() {
		return auxBinding;
	}

	public void setAuxBinding(String auxBinding) {
		this.auxBinding = auxBinding;
	}
	
	public ClassValidator<T> getValidador() {
		return validador;
	}
	
	public void setValidador(ClassValidator<T> validador) {
		this.validador = validador;
	}
	
}
